/****
 * vue-cli配置
 ****/
const CopyWebpackPlugin = require('copy-webpack-plugin')
const { CleanWebpackPlugin } = require('clean-webpack-plugin')

module.exports = {
  lintOnSave: false,
  runtimeCompiler: true,
  productionSourceMap: false,
  publicPath: process.env.NODE_ENV === 'development' ? '/' : './',
  configureWebpack: {
    devtool: 'inline-source-map',
    plugins: [
      new CopyWebpackPlugin([
        {
          from: 'src/project-conf.js',
          to: 'js/project-conf.js'
        },
      ])
    ]
  },
  pages: {
    index: {
      entry: 'src/main.js',
      title: '艾迪研助手'
    }
  },
  devServer: {
    port: 8004,
    host: '0.0.0.0',
    disableHostCheck: true,
    // https: true,
    proxy: {
      '/api': {
        target: 'https://ady-dev.aidiyanyiyao.com/ady/api',
        // target: 'http://192.168.3.75:8080/patient', // hushuai本地
        // target: 'http://ceb-dev.mlamp.com', // idc环境 1
        changeOrigin: true,
        pathRewrite: {
          // '^/uiap/scrm/api': '/api',
          '^/uiap/scrm/api': '/',
        }
      }
    }
  },

  css: {
    loaderOptions: {
      // 给 sass-loader 传递选项
      sass: {
        // 向所有 Sass 样式传入共享的全局变量
        prependData: '@import "@/assets/sass/mixin.scss";'
      },
      less: {
        // 若 less-loader 版本小于 6.0，请移除 lessOptions 这一级，直接配置选项。
        lessOptions: {
          modifyVars: {
            // 直接覆盖变量
            // 'border-color': '#eee',
            // 或者可以通过 less 文件覆盖（文件路径为绝对路径）
            hack: 'true; @import "@/assets/sass/variables.less";',
          },
        },
      },
      css: {
        // 这里的选项会传递给 css-loader
      },
      postcss: {
        // 这里的选项会传递给 postcss-loader
        plugins: [require('postcss-px2rem')({ remUnit: 37.5 })]
      }
    }
  },

  chainWebpack: config => {
    const isProd = process.env.NODE_ENV === 'production'
    if (isProd) {
      // 配置如何展示性能提示
      config.performance
        .hints('warning')
        .maxEntrypointSize(3000000)
        .maxAssetSize(1000000)
        .assetFilter(assetFilename => {
          // 配置计算性能提示的文件类型
          return assetFilename.endsWith('.css') || assetFilename.endsWith('.js')
        })

      config.plugin('clean-webpack-plugin').use(CleanWebpackPlugin)
    }

    // 添加别名
    config.resolve.alias.set('@axios', '@/api/axios')
  }
}
